package com.ship.dispatch.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ship.common.core.web.domain.JsonResult;
import com.ship.dispatch.model.SpArrange;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ship.dispatch.model.Vo.SpArrangeStatisticsVo;
import com.ship.dispatch.model.Vo.SpArrangeVo;
import com.ship.dispatch.model.dto.SpArrangeChartDto;
import com.ship.dispatch.model.dto.SpArrangeDto;
import com.ship.dispatch.model.dto.SpArrangePageDto;
import com.ship.dispatch.model.dto.SpArrangeStateUpdateDto;

/**
* @author zhangyh
* @description 针对表【sp_arrange(货船排布)】的数据库操作Service
* @createDate 2023-11-03 10:17:22
*/
public interface SpArrangeService extends IService<SpArrange> {

    /**
     * 详情
     * @param id
     * @return
     */
    JsonResult<SpArrangeVo> detail(Long id);

    /**
     * 分页
     * @param page
     * @param pageDto
     * @return
     */
    JsonResult<Page<SpArrangeVo>> getPage(Page page, SpArrangePageDto pageDto);

    /**
     * 新增
     * @param dto
     * @return
     */
    JsonResult<Long> add(SpArrangeDto dto);

    /**
     * 编辑
     * @param dto
     * @return
     */
    JsonResult<Long> update(SpArrangeDto dto);

    /**
     * 删除
     * @param id
     * @return
     */
    JsonResult delete(Long id);

    /**
     * 状态变更
     * @param dto
     * @return
     */
    JsonResult<Long> stateUpdate(SpArrangeStateUpdateDto dto);

    /**
     * 获取顶部统计
     * @return
     */
    JsonResult<SpArrangeStatisticsVo> topStatistics();

    /**
     * 获取甘特图信息
     * @param dto
     * @return
     */
    JsonResult getChart(SpArrangeChartDto dto);
}
